package com.ruoyi.bizsys.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 还款管理对象 repayment_order
 *
 * @author african-loan
 * @date 2021-12-30
 */

@Data
public class RepaymentOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**财务处理的**/
    public static final String ACTION_TYPE_FINANCE = "Monnify-Finance";

    /**
     * ID
     */

    @Excel(name = "ID", readConverterExp = "ID")
    @TableId(type = IdType.AUTO)
    private Long id;


    /**
     * 还款流水号
     */
    @Excel(name = "还款流水号")
    private String repaymentNo;

    /**
     * 延期还款订单流水号
     */
    private Long loanDeferOrderNo;

    /**
     * 客户号
     */

    @Excel(name = "客户号")
    private String custNo;


    /**
     * 借据编号
     */

    @Excel(name = "借据编号")
    private String loanSerialNo;


    /**
     * 还款类别
     */

    @Excel(name = "还款类别")
    private String actionType;


    /**
     * 还款总额金额
     */

    @Excel(name = "还款金额")
    private BigDecimal repaymentAmt;


    /**
     * 放款本金
     */

    @Excel(name = "放款金额")
    private BigDecimal loanPrincipal;


    /**
     * 应还总金额
     */

    @Excel(name = "应还总金额")
    private BigDecimal shouldRepaymentAmt;


    /**
     * 已还本金
     */

    @Excel(name = "已还本金")
    private BigDecimal repaidPrincipal;


    /**
     * 服务费
     */

    @Excel(name = "应还服务费")
    private BigDecimal serviceFee;


    /**
     * 已还服务费
     */

    @Excel(name = "已还服务费")
    private BigDecimal repaidServiceFee;


    /**
     * 总利息
     */

    @Excel(name = "应还利息")
    private BigDecimal loanInterest;


    /**
     * 已还总利息
     */

    @Excel(name = "已还利息")
    private BigDecimal repaidInterest;


    /**
     * 滞纳金
     */

    @Excel(name = "应还滞纳金")
    private BigDecimal lateFee;


    /**
     * 已还滞纳金
     */

    @Excel(name = "已还滞纳金")
    private BigDecimal repaidLateFee;


    /**
     * 银行卡
     */

    @Excel(name = "银行卡")
    private String bankCard;


    /**
     * 还款状态
     */

    @Excel(name = "还款状态")
    private Integer repayStatus;


    /**
     * 减免费用
     */

    @Excel(name = "减免费用")
    private BigDecimal reduceFee;


    /**
     * 代扣交易流水号
     */

    @Excel(name = "交易流水号")
    private String payTransSerialNo;


    /**
     * 状态
     */

    @Excel(name = "状态")
    private String state;


    /**
     * 备注
     */

    @Excel(name = "备注")
    private String remark;


    /**
     * 代扣比例
     */

    @Excel(name = "代扣比例")
    private BigDecimal withholdRate;




    /**
     * 创建时间
     */

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    /**
     * 代扣批次号
     */

    @Excel(name = "代扣批次号")
    private String bathNo;


    /**
     * 更新者
     */

    @Excel(name = "更新者")
    private String updateBy;


    /**
     * 更新时间
     */

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    /**
     * 支付时间
     */

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 减免订单的id CustReduceOrder
     */
    private Long custReduceOrderId;

}